package cn.wolfcode.luowowo.advice;

import cn.wolfcode.luowowo.exception.LogicException;
import cn.wolfcode.luowowo.util.JsonResult;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;

@ControllerAdvice//控制器增强，统一处理website-api异常
public class WebsiteApiException {
    //处理逻辑异常
    @ExceptionHandler(LogicException.class)
    @ResponseBody
    public Object logicException(Exception e){
        //控制台输出异常信息
        e.printStackTrace();
        //如果异常信息不为空则返回给页面
        if (StringUtils.hasLength(e.getMessage())){
            return new JsonResult<>(JsonResult.CODE_ERROR_PARAM,e.getMessage(),null);
        }
        //如果没有异常信息则返回   系统异常，请联系管理员
        return JsonResult.defaultError();
    }

    //处理其他系统运行时异常
    @ExceptionHandler(RuntimeException.class)
    @ResponseBody
    public Object systemException(Exception e){
        //控制台输出异常信息
        e.printStackTrace();
        return JsonResult.defaultError();
    }

}
